library(tidyverse)
library(sf)
library(rmapshaper)
library(here)
library(leaflet)
scotland <- read_sf(here("data_raw/SG_NHS_HealthBoards_2019/SG_NHS_HealthBoards_2019.shp"))
class(scotland)
[1] "sf"         "tbl_df"     "tbl"        "data.frame"
head(scotland, 14)
Simple feature collection with 14 features and 4 fields
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: 5512.998 ymin: 530250.8 xmax: 470332 ymax: 1220302
Projected CRS: OSGB 1936 / British National Grid
scotland_geometry <- st_geometry(scotland)

scotland_geometry
Geometry set for 14 features 
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: 5512.998 ymin: 530250.8 xmax: 470332 ymax: 1220302
Projected CRS: OSGB 1936 / British National Grid
First 5 geometries:
MULTIPOLYGON (((201916.2 600444.4, 201918.4 600...
MULTIPOLYGON (((345325.9 579663.3, 345325.1 579...
MULTIPOLYGON (((266004.4 543544.6, 266010.9 543...
MULTIPOLYGON (((256533 740502, 256501.5 740379,...
MULTIPOLYGON (((383521.2 771234.7, 383524.3 771...
scotland_simple <- ms_simplify(scotland)
plot(scotland_simple)

alcohol <- read_csv("../data_clean/alcohol.csv") %>% 
  filter(sex == "All") %>% 
  filter(date_code == "2016-2019") %>% 
  filter(alcohol_consumption == "Hazardous/Harmful drinker")

-- Column specification --------------------------------------------------------------------------------------
cols(
  feature_code = col_character(),
  date_code = col_character(),
  measurement = col_character(),
  units = col_character(),
  value = col_double(),
  alcohol_consumption = col_character(),
  sex = col_character(),
  hb_name = col_character()
)
scotland_simple %>% 
  left_join(alcohol, by = c("HBCode" = "feature_code")) %>% 
ggplot() +
  geom_sf(aes(group = hb_name, fill = value)) +
  theme_minimal() +
  theme(panel.grid.major = element_blank(), axis.text = element_blank()) +
  ggtitle("Alcohol Consumption in Scotland") + 
  scale_fill_gradient(low = "green", high = "red")

obesity <- read_csv("../data_clean/obesity.csv") %>% 
  filter(sex == "All") %>% 
  filter(date_code == "2016-2019") %>% 
  filter(obesity == "Obese")

-- Column specification --------------------------------------------------------------------------------------
cols(
  feature_code = col_character(),
  date_code = col_character(),
  measurement = col_character(),
  units = col_character(),
  value = col_double(),
  obesity = col_character(),
  sex = col_character(),
  hb_name = col_character()
)
scotland_simple %>% 
  left_join(obesity, by = c("HBCode" = "feature_code")) %>% 
ggplot() +
  geom_sf(aes(group = hb_name, fill = value)) +
  theme_minimal() +
  theme(panel.grid.major = element_blank(), axis.text = element_blank()) +
  ggtitle("Obesity in Scotland") + 
  scale_fill_gradient(low = "green", high = "red")

smoking_status <- read_csv("../data_clean/smoking_status.csv") %>% 
  filter(sex == "All") %>% 
  filter(date_code == "2016-2019") %>% 
  filter(smoking_status == "Current smoker")

-- Column specification --------------------------------------------------------------------------------------
cols(
  feature_code = col_character(),
  date_code = col_character(),
  measurement = col_character(),
  units = col_character(),
  value = col_double(),
  smoking_status = col_character(),
  sex = col_character(),
  hb_name = col_character()
)
scotland_simple %>% 
  left_join(smoking_status, by = c("HBCode" = "feature_code")) %>% 
ggplot() +
  geom_sf(aes(group = hb_name, fill = value)) +
  theme_minimal() +
  theme(panel.grid.major = element_blank(), axis.text = element_blank()) +
  ggtitle("Smoking Status in Scotland") + 
  scale_fill_gradient(low = "green", high = "red")

e_cig <- read_csv("../data_clean/e_cig.csv") %>% 
  filter(sex == "All") %>% 
  filter(date_code == "2016-2019") %>% 
  filter(e_cigarette_use == "Currently using")

-- Column specification --------------------------------------------------------------------------------------
cols(
  feature_code = col_character(),
  date_code = col_character(),
  measurement = col_character(),
  units = col_character(),
  value = col_double(),
  e_cigarette_use = col_character(),
  sex = col_character(),
  hb_name = col_character()
)
scotland_simple %>% 
  left_join(e_cig, by = c("HBCode" = "feature_code")) %>% 
ggplot() +
  geom_sf(aes(group = hb_name, fill = value)) +
  theme_minimal() +
  theme(panel.grid.major = element_blank(), axis.text = element_blank()) +
  ggtitle("E-cigarette use in Scotland") + 
  scale_fill_gradient(low = "green", high = "red")

obesity_scotland <- read_csv("../data_clean/obesity.csv") %>% 
  filter(sex == "All") %>% 
  filter(hb_name == "Scotland") %>% 
    filter(date_code == "2016-2019") %>% 
  filter(obesity == "Obese")

-- Column specification --------------------------------------------------------------------------------------
cols(
  feature_code = col_character(),
  date_code = col_character(),
  measurement = col_character(),
  units = col_character(),
  value = col_double(),
  obesity = col_character(),
  sex = col_character(),
  hb_name = col_character()
)

alcohol %>%
                    filter(sex == "All" | date_code == "2016-2019") %>%
                    filter(hb_name == "Scotland") %>%
                    filter(alcohol_consumption == "Hazardous/Harmful drinker") %>%
                    select(value) %>%
                    pull()
[1] 24
smoking_status_scotland <- read_csv("../data_clean/smoking_status.csv") %>% 
  filter(sex == "All") %>% 
  filter(hb_name == "Scotland") %>% 
    filter(date_code == "2016-2019") %>% 
  filter(smoking_status == "Current smoker")

-- Column specification --------------------------------------------------------------------------------------
cols(
  feature_code = col_character(),
  date_code = col_character(),
  measurement = col_character(),
  units = col_character(),
  value = col_double(),
  smoking_status = col_character(),
  sex = col_character(),
  hb_name = col_character()
)
smoking_status_scotland
e_cig_scotland <- read_csv("../data_clean/e_cig.csv") %>% 
  filter(sex == "All") %>% 
  filter(hb_name == "Scotland") %>% 
    filter(date_code == "2016-2019") %>% 
  filter(e_cigarette_use == "Currently using")

-- Column specification --------------------------------------------------------------------------------------
cols(
  feature_code = col_character(),
  date_code = col_character(),
  measurement = col_character(),
  units = col_character(),
  value = col_double(),
  e_cigarette_use = col_character(),
  sex = col_character(),
  hb_name = col_character()
)
e_cig_scotland
unique (obesity$sex)
[1] "All"
alcohol %>%
                    filter(sex == "All" | date_code == "2016-2019") %>%
                    filter(hb_name == "Scotland") %>%
                    filter(alcohol_consumption == "Hazardous/Harmful drinker") %>%
                    select(value) %>%
                    pull()
[1] 24
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpgYGB7cn0NCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShzZikNCmxpYnJhcnkocm1hcHNoYXBlcikNCmxpYnJhcnkoaGVyZSkNCmxpYnJhcnkobGVhZmxldCkNCmBgYA0KDQpgYGB7cn0NCnNjb3RsYW5kIDwtIHJlYWRfc2YoaGVyZSgiZGF0YV9yYXcvU0dfTkhTX0hlYWx0aEJvYXJkc18yMDE5L1NHX05IU19IZWFsdGhCb2FyZHNfMjAxOS5zaHAiKSkNCmBgYA0KDQpgYGB7cn0NCmNsYXNzKHNjb3RsYW5kKQ0KYGBgDQoNCmBgYHtyfQ0KaGVhZChzY290bGFuZCwgMTQpDQpgYGANCg0KYGBge3J9DQpzY290bGFuZF9nZW9tZXRyeSA8LSBzdF9nZW9tZXRyeShzY290bGFuZCkNCg0Kc2NvdGxhbmRfZ2VvbWV0cnkNCmBgYA0KDQpgYGB7cn0NCnNjb3RsYW5kX3NpbXBsZSA8LSBtc19zaW1wbGlmeShzY290bGFuZCkNCmBgYA0KDQpgYGB7cn0NCnBsb3Qoc2NvdGxhbmRfc2ltcGxlKQ0KYGBgDQoNCg0KDQpgYGB7cn0NCmFsY29ob2wgPC0gcmVhZF9jc3YoIi4uL2RhdGFfY2xlYW4vYWxjb2hvbC5jc3YiKSAlPiUgDQogIGZpbHRlcihzZXggPT0gIkFsbCIpICU+JSANCiAgZmlsdGVyKGRhdGVfY29kZSA9PSAiMjAxNi0yMDE5IikgJT4lIA0KICBmaWx0ZXIoYWxjb2hvbF9jb25zdW1wdGlvbiA9PSAiSGF6YXJkb3VzL0hhcm1mdWwgZHJpbmtlciIpDQoNCnNjb3RsYW5kX3NpbXBsZSAlPiUgDQogIGxlZnRfam9pbihhbGNvaG9sLCBieSA9IGMoIkhCQ29kZSIgPSAiZmVhdHVyZV9jb2RlIikpICU+JSANCmdncGxvdCgpICsNCiAgZ2VvbV9zZihhZXMoZ3JvdXAgPSBoYl9uYW1lLCBmaWxsID0gdmFsdWUpKSArDQogIHRoZW1lX21pbmltYWwoKSArDQogIHRoZW1lKHBhbmVsLmdyaWQubWFqb3IgPSBlbGVtZW50X2JsYW5rKCksIGF4aXMudGV4dCA9IGVsZW1lbnRfYmxhbmsoKSkgKw0KICBnZ3RpdGxlKCJBbGNvaG9sIENvbnN1bXB0aW9uIGluIFNjb3RsYW5kIikgKyANCiAgc2NhbGVfZmlsbF9ncmFkaWVudChsb3cgPSAiZ3JlZW4iLCBoaWdoID0gInJlZCIpDQpgYGANCg0KYGBge3J9DQpvYmVzaXR5IDwtIHJlYWRfY3N2KCIuLi9kYXRhX2NsZWFuL29iZXNpdHkuY3N2IikgJT4lIA0KICBmaWx0ZXIoc2V4ID09ICJBbGwiKSAlPiUgDQogIGZpbHRlcihkYXRlX2NvZGUgPT0gIjIwMTYtMjAxOSIpICU+JSANCiAgZmlsdGVyKG9iZXNpdHkgPT0gIk9iZXNlIikNCg0Kc2NvdGxhbmRfc2ltcGxlICU+JSANCiAgbGVmdF9qb2luKG9iZXNpdHksIGJ5ID0gYygiSEJDb2RlIiA9ICJmZWF0dXJlX2NvZGUiKSkgJT4lIA0KZ2dwbG90KCkgKw0KICBnZW9tX3NmKGFlcyhncm91cCA9IGhiX25hbWUsIGZpbGwgPSB2YWx1ZSkpICsNCiAgdGhlbWVfbWluaW1hbCgpICsNCiAgdGhlbWUocGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfYmxhbmsoKSwgYXhpcy50ZXh0ID0gZWxlbWVudF9ibGFuaygpKSArDQogIGdndGl0bGUoIk9iZXNpdHkgaW4gU2NvdGxhbmQiKSArIA0KICBzY2FsZV9maWxsX2dyYWRpZW50KGxvdyA9ICJncmVlbiIsIGhpZ2ggPSAicmVkIikNCmBgYA0KDQpgYGB7cn0NCnNtb2tpbmdfc3RhdHVzIDwtIHJlYWRfY3N2KCIuLi9kYXRhX2NsZWFuL3Ntb2tpbmdfc3RhdHVzLmNzdiIpICU+JSANCiAgZmlsdGVyKHNleCA9PSAiQWxsIikgJT4lIA0KICBmaWx0ZXIoZGF0ZV9jb2RlID09ICIyMDE2LTIwMTkiKSAlPiUgDQogIGZpbHRlcihzbW9raW5nX3N0YXR1cyA9PSAiQ3VycmVudCBzbW9rZXIiKQ0KDQpzY290bGFuZF9zaW1wbGUgJT4lIA0KICBsZWZ0X2pvaW4oc21va2luZ19zdGF0dXMsIGJ5ID0gYygiSEJDb2RlIiA9ICJmZWF0dXJlX2NvZGUiKSkgJT4lIA0KZ2dwbG90KCkgKw0KICBnZW9tX3NmKGFlcyhncm91cCA9IGhiX25hbWUsIGZpbGwgPSB2YWx1ZSkpICsNCiAgdGhlbWVfbWluaW1hbCgpICsNCiAgdGhlbWUocGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfYmxhbmsoKSwgYXhpcy50ZXh0ID0gZWxlbWVudF9ibGFuaygpKSArDQogIGdndGl0bGUoIlNtb2tpbmcgU3RhdHVzIGluIFNjb3RsYW5kIikgKyANCiAgc2NhbGVfZmlsbF9ncmFkaWVudChsb3cgPSAiZ3JlZW4iLCBoaWdoID0gInJlZCIpDQpgYGANCg0KYGBge3J9DQplX2NpZyA8LSByZWFkX2NzdigiLi4vZGF0YV9jbGVhbi9lX2NpZy5jc3YiKSAlPiUgDQogIGZpbHRlcihzZXggPT0gIkFsbCIpICU+JSANCiAgZmlsdGVyKGRhdGVfY29kZSA9PSAiMjAxNi0yMDE5IikgJT4lIA0KICBmaWx0ZXIoZV9jaWdhcmV0dGVfdXNlID09ICJDdXJyZW50bHkgdXNpbmciKQ0KDQpzY290bGFuZF9zaW1wbGUgJT4lIA0KICBsZWZ0X2pvaW4oZV9jaWcsIGJ5ID0gYygiSEJDb2RlIiA9ICJmZWF0dXJlX2NvZGUiKSkgJT4lIA0KZ2dwbG90KCkgKw0KICBnZW9tX3NmKGFlcyhncm91cCA9IGhiX25hbWUsIGZpbGwgPSB2YWx1ZSkpICsNCiAgdGhlbWVfbWluaW1hbCgpICsNCiAgdGhlbWUocGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfYmxhbmsoKSwgYXhpcy50ZXh0ID0gZWxlbWVudF9ibGFuaygpKSArDQogIGdndGl0bGUoIkUtY2lnYXJldHRlIHVzZSBpbiBTY290bGFuZCIpICsgDQogIHNjYWxlX2ZpbGxfZ3JhZGllbnQobG93ID0gImdyZWVuIiwgaGlnaCA9ICJyZWQiKQ0KYGBgDQoNCmBgYHtyfQ0KYWxjb2hvbCAlPiUgDQogIGZpbHRlcihzZXggPT0gIkFsbCIpICU+JSANCiAgZmlsdGVyKGhiX25hbWUgPT0gIlNjb3RsYW5kIikgJT4lIA0KICAgIGZpbHRlcihkYXRlX2NvZGUgPT0gIjIwMTYtMjAxOSIpICU+JSANCiAgZmlsdGVyKGFsY29ob2xfY29uc3VtcHRpb24gPT0gIkhhemFyZG91cy9IYXJtZnVsIGRyaW5rZXIiKSANCg0KYWxjb2hvbF9zY290bGFuZA0KDQoNCiAgc2VsZWN0KHZhbHVlKSAlPiUgDQogIHB1bGwoKQ0KYGBgDQoNCmBgYHtyfQ0Kb2Jlc2l0eV9zY290bGFuZCA8LSByZWFkX2NzdigiLi4vZGF0YV9jbGVhbi9vYmVzaXR5LmNzdiIpICU+JSANCiAgZmlsdGVyKHNleCA9PSAiQWxsIikgJT4lIA0KICBmaWx0ZXIoaGJfbmFtZSA9PSAiU2NvdGxhbmQiKSAlPiUgDQogICAgZmlsdGVyKGRhdGVfY29kZSA9PSAiMjAxNi0yMDE5IikgJT4lIA0KICBmaWx0ZXIob2Jlc2l0eSA9PSAiT2Jlc2UiKQ0KDQpvYmVzaXR5X3Njb3RsYW5kDQpgYGANCg0KYGBge3J9DQoNCmFsY29ob2wgJT4lDQogICAgICAgICAgICAgICAgICAgIGZpbHRlcihzZXggPT0gIkFsbCIgfCBkYXRlX2NvZGUgPT0gIjIwMTYtMjAxOSIpICU+JQ0KICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoaGJfbmFtZSA9PSAiU2NvdGxhbmQiKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKGFsY29ob2xfY29uc3VtcHRpb24gPT0gIkhhemFyZG91cy9IYXJtZnVsIGRyaW5rZXIiKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0KHZhbHVlKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgcHVsbCgpDQpgYGANCg0KDQpgYGB7cn0NCnNtb2tpbmdfc3RhdHVzX3Njb3RsYW5kIDwtIHJlYWRfY3N2KCIuLi9kYXRhX2NsZWFuL3Ntb2tpbmdfc3RhdHVzLmNzdiIpICU+JSANCiAgZmlsdGVyKHNleCA9PSAiQWxsIikgJT4lIA0KICBmaWx0ZXIoaGJfbmFtZSA9PSAiU2NvdGxhbmQiKSAlPiUgDQogICAgZmlsdGVyKGRhdGVfY29kZSA9PSAiMjAxNi0yMDE5IikgJT4lIA0KICBmaWx0ZXIoc21va2luZ19zdGF0dXMgPT0gIkN1cnJlbnQgc21va2VyIikNCg0Kc21va2luZ19zdGF0dXNfc2NvdGxhbmQNCmBgYA0KDQpgYGB7cn0NCmVfY2lnX3Njb3RsYW5kIDwtIHJlYWRfY3N2KCIuLi9kYXRhX2NsZWFuL2VfY2lnLmNzdiIpICU+JSANCiAgZmlsdGVyKHNleCA9PSAiQWxsIikgJT4lIA0KICBmaWx0ZXIoaGJfbmFtZSA9PSAiU2NvdGxhbmQiKSAlPiUgDQogICAgZmlsdGVyKGRhdGVfY29kZSA9PSAiMjAxNi0yMDE5IikgJT4lIA0KICBmaWx0ZXIoZV9jaWdhcmV0dGVfdXNlID09ICJDdXJyZW50bHkgdXNpbmciKQ0KDQplX2NpZ19zY290bGFuZA0KYGBgDQoNCmBgYHtyfQ0KdW5pcXVlIChvYmVzaXR5JHNleCkNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBzZWxlY3RJbnB1dCgieWVhcl9zZWxlY3Rpb24iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZWFyIFNlbGVjdGlvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hvaWNlcyA9IHVuaXF1ZShvYmVzaXR5JGRhdGVfY29kZSkpDQoNCmBgYA0KDQpgYGB7cn0NCmFsY29ob2wgJT4lDQogICAgICAgICAgICAgICAgICAgIGZpbHRlcihzZXggPT0gIkFsbCIgfCBkYXRlX2NvZGUgPT0gIjIwMTYtMjAxOSIpICU+JQ0KICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoaGJfbmFtZSA9PSAiU2NvdGxhbmQiKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKGFsY29ob2xfY29uc3VtcHRpb24gPT0gIkhhemFyZG91cy9IYXJtZnVsIGRyaW5rZXIiKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0KHZhbHVlKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgcHVsbCgpDQpgYGANCg0K